#-*- coding:utf-8 -*-
import  unittest

from selenium import webdriver



# 声明个类继承TestCase
class Login(unittest.TestCase):

    # 测试用例执行之前执行的方法
    # 一般在这里面干的是打开浏览器,以及查找控件
    def setUp(self):

        # 打开浏览器
        self.dirver=webdriver.Firefox()
        # 浏览器最大化
        self.dirver.maximize_window()
        # 打开网址
        self.dirver.get("https://passport.jd.com/new/login.aspx?ReturnUrl=https%3A%2F%2Fwww.jd.com%2F%3Fcu%3Dtrue%26utm_source%3Dbaidu-pinzhuan%26utm_medium%3Dcpc%26utm_campaign%3Dt_288551095_baidupinzhuan%26utm_term%3D0f3d30c8dba7459bb52f2eb5eba8ac7d_0_f96bb5f6af3a4b659b87e65dd4282e76")
        # 休眠五秒 使用智能等待
        self.dirver.implicitly_wait(10)

        # 开始查找控件
        # 用户名登陆的控件
        self.login_tab_r=self.dirver.find_element_by_class_name("login-tab-r")
        # 用户名输入框
        self.loginname=self.dirver.find_element_by_id("loginname")
        # 密码输入框
        self.nloginpwd=self.dirver.find_element_by_id("nloginpwd")
        # 登录按钮
        self.loginsubmit=self.dirver.find_element_by_id("loginsubmit")

        # 账号密码输入页面框,,二维码扫描页面框
        self.login_box=self.dirver.find_element_by_class_name("login-box")
        self.qrcode_login=self.dirver.find_element_by_class_name("qrcode-login")

        pass


    # 测试用例执行之后执行的方法
    # 一般用来关闭浏览器以及关闭数据库
    def tearDown(self):
        # 关闭浏览器
        self.dirver.quit()
        pass


    # 1.用户名为空,密码为空
    def test_us_em_pw_em(self):

        u"""用户名为空,密码为空,应该提示请输入用户名"""

        # 切换到用户名输入框里面
        self.login_tab_r.click()

        # 首先判断是不是账号密码登陆页面框可见
        if self.login_box.is_displayed() == True:


            # 清除输入的用户名
            self.loginname.clear()
            # 清除输入的密码
            self.nloginpwd.clear()
            # 点击登录按钮
            self.loginsubmit.click()

            # 进行智能休眠
            self.dirver.implicitly_wait(5)
            # 查找显示出来的控件(提示密码为空这样的)
            self.msg_error=self.dirver.find_element_by_class_name("msg-error")
            # 获取控件的显示内容
            self.text=self.msg_error.text

            # 使用断言来判断是不是需要的内容
            self.assertEqual(self.text,u"请输入账户名和密码")

        else :
            self.assertEqual(self.login_box.is_displayed(),"True")

        pass

    #用户名不为空,密码为空
    def test_us_noem_pw_em(self):

        u"""用户名不为空,密码为空,应该提示请输入密码"""

        # 切换到用户名输入界面
        self.login_tab_r.click()

        # 输入用户名
        self.loginname.send_keys(u"癸桀")
        # 清楚密码框的东西
        self.nloginpwd.clear()
        # 点击登陆按钮
        self.loginsubmit.click()

        # 进行只能休眠
        self.dirver.implicitly_wait(5)
        # 查找显示出来的控件
        self.msg=self.dirver.find_element_by_class_name("msg-error")
        # 获取内容
        self.text=self.msg.text

        # 使用断言判断是否一致
        self.assertEqual(self.text,u"请输入密码")

        pass

        # 用户名不为空,密码不为空,但是密码错误
    def test_us_noem_pw_noem(self):
        u"""用户名不为空,密码不为空,但是密码错误,应该提示账户名与密码不匹配，请重新输入"""
        # 切换到用户名输入框里面
        self.login_tab_r.click()

        # 输入用户名
        self.loginname.send_keys(u"癸桀")
        # 输入密码
        self.nloginpwd.send_keys('2356')
        # 点击登陆按钮
        self.loginsubmit.click()

        # 进行只能休眠
        self.dirver.implicitly_wait(5)


        # 查找显示出来的控件
        self.msg1=self.dirver.find_element_by_class_name("msg-error")

        # 获得显示出来的控件的内容
        self.text=self.msg1.text

        # 断言判断是否一致
        self.assertEqual(self.text,u"账户名与密码不匹配，请重新输入")



        pass
    #新添加的代码
